package org.larkdoc.model.vo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.larkdoc.model.entity.GroupInfo;

/**
 * 
 * 项目信息VO(View Object)
 *  
 * @author  zhangpeijun[zhangpeijun1024@qq.com]
 * @version  [v1.0.1, 2017年10月17日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public class ProjectVO implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    private Integer           id;
    
    private String            name;
    
    private String            tag;
    
    private String            description;
    
    /**
     * 可见范围-0：自己可见，1：群组可见，2：所有人可见
     * Column : project_info.visible_range
     *
     * @mbggenerated
     */
    private Integer           visibleRange;
    
    /**
     * 创建者
     * Column : project_info.creator
     *
     * @mbggenerated
     */
    private String            creator;
    
    /**
     * 数据状态-数据是否有效：0：无效,1：有效
     * Column : project_info.is_valid
     *
     * @mbggenerated
     */
    private Integer           isValid;
    
    private Date              createTime;
    
    private Date              updateTime;
    
    private String            remark;
    
    private String            userIds;
    
    private String            groupIds;
    
    /**
     * 是自己创建的
     */
    private Boolean           own;
    
    private List<UserVO>      users;
    
    private List<GroupInfo>   groups;
    
    /**
     * Returns : id
     *
     * @return the value of project_info.id
     *
     * @mbggenerated
     */
    public Integer getId() {
        return id;
    }
    
    /**
     * This method sets : id
     *
     * @param id the value for project_info.id
     *
     * @mbggenerated
     */
    public void setId(Integer id) {
        this.id = id;
    }
    
    /**
     * Returns : 名称
     *
     * @return the value of project_info.name
     *
     * @mbggenerated
     */
    public String getName() {
        return name;
    }
    
    /**
     * This method sets : 名称
     *
     * @param name the value for project_info.name
     *
     * @mbggenerated
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }
    
    /**
     * Returns : 标签
     *
     * @return the value of project_info.tag
     *
     * @mbggenerated
     */
    public String getTag() {
        return tag;
    }
    
    /**
     * This method sets : 标签
     *
     * @param tag the value for project_info.tag
     *
     * @mbggenerated
     */
    public void setTag(String tag) {
        this.tag = tag == null ? null : tag.trim();
    }
    
    public String getDescription() {
        return description;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
    
    /**
     * Returns : 可见范围-0：自己可见，1：群组可见，2：所有人可见
     *
     * @return the value of project_info.visible_range
     *
     * @mbggenerated
     */
    public Integer getVisibleRange() {
        return visibleRange;
    }
    
    /**
     * This method sets : 可见范围-0：自己可见，1：群组可见，2：所有人可见
     *
     * @param visibleRange the value for project_info.visible_range
     *
     * @mbggenerated
     */
    public void setVisibleRange(Integer visibleRange) {
        this.visibleRange = visibleRange;
    }
    
    /**
     * Returns : 创建者
     *
     * @return the value of project_info.creator
     *
     * @mbggenerated
     */
    public String getCreator() {
        return creator;
    }
    
    /**
     * This method sets : 创建者
     *
     * @param creator the value for project_info.creator
     *
     * @mbggenerated
     */
    public void setCreator(String creator) {
        this.creator = creator == null ? null : creator.trim();
    }
    
    /**
     * Returns : 数据状态-数据是否有效：0：无效,1：有效
     *
     * @return the value of project_info.is_valid
     *
     * @mbggenerated
     */
    public Integer getIsValid() {
        return isValid;
    }
    
    /**
     * This method sets : 数据状态-数据是否有效：0：无效,1：有效
     *
     * @param isValid the value for project_info.is_valid
     *
     * @mbggenerated
     */
    public void setIsValid(Integer isValid) {
        this.isValid = isValid;
    }
    
    /**
     * Returns : 创建时间
     *
     * @return the value of project_info.create_time
     *
     * @mbggenerated
     */
    public Date getCreateTime() {
        return createTime;
    }
    
    /**
     * This method sets : 创建时间
     *
     * @param createTime the value for project_info.create_time
     *
     * @mbggenerated
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    
    /**
     * Returns : 更新时间
     *
     * @return the value of project_info.update_time
     *
     * @mbggenerated
     */
    public Date getUpdateTime() {
        return updateTime;
    }
    
    /**
     * This method sets : 更新时间
     *
     * @param updateTime the value for project_info.update_time
     *
     * @mbggenerated
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    
    /**
     * Returns : 备注信息
     *
     * @return the value of project_info.remark
     *
     * @mbggenerated
     */
    public String getRemark() {
        return remark;
    }
    
    /**
     * This method sets : 备注信息
     *
     * @param remark the value for project_info.remark
     *
     * @mbggenerated
     */
    public void setRemark(String remark) {
        this.remark = remark == null ? null : remark.trim();
    }
    
    public String getUserIds() {
        return userIds;
    }
    
    public void setUserIds(String userIds) {
        this.userIds = userIds;
    }
    
    public String getGroupIds() {
        return groupIds;
    }
    
    public void setGroupIds(String groupIds) {
        this.groupIds = groupIds;
    }
    
    public List<UserVO> getUsers() {
        return users;
    }
    
    public void setUsers(List<UserVO> users) {
        this.users = users;
    }
    
    public List<GroupInfo> getGroups() {
        return groups;
    }
    
    public void setGroups(List<GroupInfo> groups) {
        this.groups = groups;
    }
    
    public Boolean isOwn() {
        return own;
    }
    
    public void setOwn(boolean own) {
        this.own = own;
    }
    
    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("ProjectVO [id=");
        builder.append(id);
        builder.append(", name=");
        builder.append(name);
        builder.append(", tag=");
        builder.append(tag);
        builder.append(", description=");
        builder.append(description);
        builder.append(", visibleRange=");
        builder.append(visibleRange);
        builder.append(", creator=");
        builder.append(creator);
        builder.append(", isValid=");
        builder.append(isValid);
        builder.append(", createTime=");
        builder.append(createTime);
        builder.append(", updateTime=");
        builder.append(updateTime);
        builder.append(", remark=");
        builder.append(remark);
        builder.append(", userIds=");
        builder.append(userIds);
        builder.append(", groupIds=");
        builder.append(groupIds);
        builder.append(", own=");
        builder.append(own);
        builder.append(", users=");
        builder.append(users);
        builder.append(", groups=");
        builder.append(groups);
        builder.append("]");
        return builder.toString();
    }
    
}